1. Field of the Invention
The invention relates generally to serial attached SCSI (“SAS”) communications and more specifically relates to methods and structures to improve transfer rate performance (i.e., bandwidth utilization) in a wide SAS port environment.
2. Discussion of Related Art
Small Computer Systems Interface (“SCSI”) is a set of American National Standards Institute (“ANSI”) standard electronic interface specification that allow, for example, computers to communicate with peripheral hardware. Common SCSI compatible peripheral devices may include: disk drives, tape drives, Compact Disc-Read Only Memory (“CD-ROM”) drives, printers and scanners. SCSI as originally created included both a command/response data structure specification and an interface and protocol standard for a parallel bus structure for attachment of devices. SCSI has evolved from exclusively parallel interfaces to include both parallel and serial interfaces. “SCSI” is now generally understood as referring either to the communication transport media (parallel bus structures and various serial transports) or to a plurality of primary commands common to most devices and command sets to meet the needs of specific device types as well as a variety of interface standards and protocols.
The collection of primary commands and other command sets may be used with SCSI parallel interfaces as well as with serial interfaces. The serial interface transport media standards that support SCSI command processing include: Fibre Channel, Serial Bus Protocol (used with the Institute of Electrical and Electronics Engineers 1394 FireWire physical protocol; “IEEE 1394”) and the Serial Storage Protocol (SSP).
SCSI interface transports and commands are also used to interconnect networks of storage devices with processing devices. For example, serial SCSI transport media and protocols such as Serial Attached SCSI (“SAS”) and Serial Advanced Technology Attachment (“SATA”) may be used in such networks. These applications are often referred to as storage networks. Those skilled in the art are familiar with SAS and SATA standards as well as other SCSI related specifications and standards. Information about such interfaces and commands is generally obtainable at the website http://www.t10.org.
Such SCSI storage networks are often used in large storage systems having a plurality of disk drives to store data for organizations and/or businesses. The network architecture allows storage devices to be physically dispersed in an enterprise while continuing to support SCSI commands directly. This architecture allows for distribution of the storage components in an enterprise without the need for added overhead in converting storage requests from SCSI commands into other network commands and then back into lower level SCSI storage related commands.
A SAS network typically comprises one or more SAS initiators coupled to one or more SAS targets via one or more SAS expanders. In general, as is common in all SCSI communications, SAS initiators initiate communications with SAS targets. The expanders expand the number of ports of a SAS network domain used to interconnect SAS initiators and SAS targets (collectively referred to as SAS devices or SAS device controllers).
It is a particular problem in a SAS domain to fully utilize the transfer bandwidth available in a SAS wide port environment. As is generally known in the art, the SAS specifications include the ability to aggregate multiple standard SAS ports or PHYs (physical links) for use as a so called wide port. Information may be generally transferred in parallel among the multiple standard SAS ports aggregated to form the configured wide port. Such parallel transfer allows for improved bandwidth between a SAS initiator and a SAS target coupled by the configured wide port. However, SAS specifications (i.e., section 8.2.2.1 of the SAS 1.0 specification in which the state machine model is presented) require selection of a single PHY to further the transaction of a particular I/O request. The transaction will normally be completed by the transfer of multiple data frames but those data frames will typically be transferred on a single PHY, either until the I/O is complete or until a “credit blocked” situation occurs (a “credit blocked” situation is a flow control mechanism for a port as defined by the SAS specifications and as generally known to those of ordinary skill in the art). The SAS specifications thereby preclude full utilization of the enhanced bandwidth of a configured wide port where a single large frame (i.e., large block) is to be transferred. Rather, the SAS specification contemplates simultaneous transmission of multiple independent frames—each over an independent PHY of the multiple PHYs aggregated to provide the desired wide port. Since SAS specifications require a single SAS frame to be transmitted over a single selected PHY link, other PHY links (i.e., ports) of the configured wide port may go unutilized or underutilized. In addition, use of a single PHY link will impose the maximum possible latency on a particular transaction.
It is evident from the above discussion that an ongoing need exists for improving transfer bandwidth utilization of configured SAS wide ports.